﻿/*
Nombre:                         EliminarAccion
Descripcion:                    Accion que elimina una categoria de la base de datos utilizando la tecnologia LINQ
Dependencias:                 
Fecha de creación:              20090222
Autor:                          VMORALES
Fecha de modifcación:         
Responsable:                  
Num. de modifcación:            0
*/

#region Imports

using Entidades = Electrocucaracha.AdminPersonal.DAO.Entidades;
using Electrocucaracha.AdminPersonal.DAO.Acciones;
using Common.Logging;

#endregion

namespace Electrocucaracha.AdminPersonal.DAO.Linq.Acciones.Categoria
{
    /// <summary>
    /// Accion que elimina una categoria de la base de datos utilizando la tecnologia LINQ
    /// </summary>
    class EliminarAccion : Accion
    {
        #region Constantes

        #endregion

        #region Miembros

        private static readonly ILog log = LogManager.GetLogger(typeof(EliminarAccion));

        #endregion

        #region Propiedades

        #endregion

        #region Constructores

        #endregion

        #region Funciones

        #endregion

        #region IAccion

        /// <summary>
        /// Accion que elimina de la base de datos la categoria solicitada
        /// </summary>
        public override void Ejecutar()
        {
            log.Info("Inicio Categoria.EliminarAccion.Ejecutar()");

            parametros[OUTPUT] = false;
            Entidades.CategoriaDTO categoria = parametros[INPUT] as Entidades.CategoriaDTO;
            if (categoria != null)
            {
                log.Debug("Id : " + categoria.Id);

                dbAdminPersonalDataContext dbAdmin = new dbAdminPersonalDataContext();
                parametros[OUTPUT] = dbAdmin.EliminarCategoria(categoria.Id) >= 0;

                log.Debug("OUTPUT : " + parametros[OUTPUT]);
            }
            else
            {
                log.Error("No se pudo obtener la categoria a eliminar");
                throw new DAOException("No se pudo obtener la categoria a eliminar"); ;
            }

            log.Info("Fin Categoria.EliminarAccion.Ejecutar()");
        }//Ejecutar

        #endregion

    }//EliminarAccion
}//Electrocucaracha.AdminPersonal.DAO.Linq.Acciones.Categoria